Apparatus, systems and methods for facilitating shopping for items shown in media content events

ABSTRACT

Techniques for facilitating shopping for items shown in media content events are described. Some embodiments provide a shopping facilitator as part of a media device, such as a set-top box. As the media device presents a media content event showing multiple items, the shopping facilitator is configured to receive an indication that a viewer is interested in purchasing one of the multiple items. The shopping facilitator then identifies the item of interest, and at a later time provides a shopping facility that can be can be used by the viewer or some other user to purchase the item. In some embodiments, the media content event is presented without any indication that items shown in the media content event are for sale. Furthermore, the shopping facilitator may perform its functions without interrupting or otherwise disrupting the viewing of the media content event.

PRIORITY CLAIM

This patent application is a Continuation of U.S. application Ser. No.13/091,957, filed Apr. 21, 2011, published as U.S. Publication No.2012/0272268, and entitled “APPARATUS, SYSTEMS AND METHODS FORFACILITATING SHOPPING FOR ITEMS SHOWN IN MEDIA CONTENT EVENTS,” thecontent of which is herein incorporated by reference in its entirety.

BACKGROUND

A number of approaches exist for providing shopping functionality toviewers of media content events, such as television shows or movies. Insome approaches, an available item appearing in a media content event isflagged or indicated as such, by way of a marker, message, tag, or thelike. Then, the user enters a shopping mode or similar state, in orderto select an item to purchase. In some approaches, items are selected byentering an item identifier (e.g., a tag number displayed on the screen)via a keyboard.

Such approaches have a number of drawbacks. First, indicating items asbeing for sale by way of markers or tags may disrupt the viewingexperience by cluttering the screen or otherwise destroying theaesthetic experience presented by the media content event. Second,entering item identifiers such as tag numbers can be time consuming anderror-prone or frustrating, particularly in the low-light environmentsoften used for video viewing.

SUMMARY

Systems and methods for facilitating shopping for items shown in mediacontent events are disclosed. An exemplary embodiment presents, by amedia device, a media content event that shows multiple items withoutindications that any of the multiple items are available for purchase;at a time occurring during the presentation of the media content event,receives an indication that a viewer of the media content event isinterested in purchasing an item shown by the media content event;identifies, based at least in part on the time, one or more of themultiple items, the identified one or more items being shown by themedia content event at about the time and including the item that theuser is interested in purchasing; and stores indications of theidentified one or more items.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred and alternative embodiments are described in detail below withreference to the following drawings:

FIG. 1 is a block diagram illustrating functional elements of an exampleembodiment of a shopping facilitator;

FIGS. 2A-2D illustrate example user interface screens provided byexample embodiments;

FIG. 3 illustrates example data processed by an example embodiment;

FIG. 4 is a flow diagram of a shopping facilitator process provided byan example embodiment;

FIG. 5 is a block diagram of a computing system for practicing exampleembodiments of a shopping facilitator.

DETAILED DESCRIPTION

Example embodiments described herein facilitate shopping for items thatare presented in media content events. Some embodiments provide ashopping facilitator that is configured to receive an indication that auser (e.g., viewer) is interested in an item shown by a media contentevent. In response, the shopping facilitator identifies the item in themedia content event, and further provides information about theidentified item and/or controls with which the user can initiate atransaction for the identified item. In some embodiments, the shoppingfacilitator provides a shopping facility (e.g., an online store) that ispersonalized for a user and that is populated with items indicated bythe user as potential acquisitions.

FIG. 1 is a block diagram illustrating functional elements of an exampleembodiment of a shopping facilitator 100 executing as part of a mediadevice 110. The media device 110 is communicatively coupled, via acommunications system 130, to a program distributor 140, a merchant 142,and an item information provider 144. The media device 110 is alsocommunicatively coupled to a presentation device 120. The media device110 receives media content events from the program distributor 140, andpresents received media content events on the presentation device 120. Auser (or viewer) 150 interacts with the media device 110 via a remotecontrol device 122, such as by selecting media content events, adjustingthe volume, initiating recordings, and the like. Media content eventsmay include movies, news programs, sporting events, serial comedies ordramas, and other program events that are communicated to the mediadevice 110. Media content events may include video data, audio data,text, and/or computer instructions.

The shopping facilitator 100 facilitates shopping for items shown inmedia content events presented by the media device 110. In particular,the shopping facilitator 100 identifies items that are shown in mediacontent events and that are of potential interest to the user 150. Theshopping facilitator 100 then provides information about the identifieditems, such as by providing a shopping facility, such as an onlinestore, that is populated with information about, and/or controls forpurchasing, the identified items. The shopping facilitator 100 includesan item identifier 102, a store manager 104, and item information 106.The item identifier 102 identifies items appearing in media contentevents shown by the media device 110. In some embodiments, the itemidentifier 102 identifies items based on meta-information stored as iteminformation 106. Such meta-information may be received from the iteminformation provider 144 and/or the program distributor 140. The storemanager 104 manages (e.g., records, stores) items selected by the user150 and provides a shopping facility or other user interface that can beused by the user 150 to purchase such items.

In one example usage scenario, a scene 121 in a media content eventshown on presentation device 120 may show multiple items, such as alaptop computer, eyeglasses, a chair, a tie, and the like. If the user150 is interested in purchasing or obtaining information about one ofthe shown items, such as the laptop computer, the user 150 may indicatesuch an interest via the remote control device 122. By pressing a buttonor providing other input (e.g., a voice command), the user 150 causesthe remote control device 122 to transmit an indication that the user isinterested in purchasing some item shown by the media content event. Theshopping facilitator 100 receives the transmitted indication, and inresponse, identifies one or more items that are shown at about the timethat the indication was received. Then, the shopping facilitator 100stores indications of the identified items. At a later time, theshopping facilitator 100 provides information about the identified itemsto the user 150, such as by providing a shopping facility (e.g., anonline store, an electronic marketplace, a shopping Website) thatincludes information about the identified items. By using the providedshopping facility, the user 150 can elect to purchase one or more of theidentified items.

Note that in some embodiments, items shown in a media content event aredisplayed without any indications that any of the items are availablefor purchase. In other words, items are not annotated, flagged, orotherwise denoted as being available for purchase. Thus, using thedescribed techniques, the user's viewing experience is not cluttered,distracted, or otherwise disrupted by the shopping services provided bythe shopping facilitator 100. Furthermore, in some embodiments, the usercan indicate interest in purchasing items without pausing, stopping,entering into another mode or state (e.g., a shopping mode), orotherwise disrupting the flow or aesthetic experience of the mediacontent event.

The item identifier 102 of the shopping facilitator 100 may identifyitems in a media content event in various ways. In one embodiment, theitem identifier 102 identifies items with reference to metadata providedwith the media content event. The metadata may include indications ofitems that are associated with times at which those items appear in themedia content event. Then, when the shopping facilitator 100 receives anindication at a particular time during the presentation of the mediacontent event, the item identifier 102 can identify one or more itemsshown at about that time. In some embodiments, the indications of, orinformation about, the identified items may be stored, in a mannertransparent to the user 150, until a later time when the user 150 visitsthe shopping facility provided by the store manager 104. In otherembodiments, the user 150 may be presented with a list of multiple itemsappearing at about the time when the user 150 indicated interest inpurchasing an item shown in the media content event, along with arequest to select one or more of the multiple items. In furtherembodiments, the item identifier 102 may utilize image processingtechniques to identify one or more items appearing at about the timewhen the user 150 indicated his interest. For example, the itemidentifier 102 may perform object recognition to automatically identifyitems shown in a scene or frame of a media content event. Such objectrecognition may be performed in off-line manner, such as when the mediadevice 110 does not have sufficient processing capabilities to performpotentially computationally intensive image recognition.

The media device 110 and the shopping facilitator 100 also interact viathe communication system 130 which the merchant 142 and/or the iteminformation provider 144. In particular, the store manager 104 mayfacilitate transactions between the user 150 and the merchant 142. Forexample the store manager 104 may display a link or other control toaccess the merchant 142, for purposes of initiating a purchase for aparticular item and/or obtaining more information about the item. Theshopping facilitator 100 may also receive information about items shownin media content events from the item information provider 144, such asmetadata that identifies items in media content events. Such metadatamay be stored as item information 106 for use by the item identifier102. In other embodiments, the item information provider 144 may insteador in addition perform object recognition or other image processingtechniques, to automatically identify items in media content events, asdiscussed above. In some embodiments, metadata or other informationabout items shown in media content events is instead or in additionreceived by the shopping facilitator 100 from the program distributor140. For example, the program distributor 140 may include suchinformation as part of a program signal or stream transmitted to themedia device 110.

Information about items identified by the shopping facilitator 100 maybe accessed by the user 150 in various ways. For example, informationabout identified items may be accessed concurrently with thepresentation of a media content event or any later time. In oneembodiment, the user 150 may pause or stop the media content event toobtain more information about an item shown in a particular scene. Inanother embodiment, the item identifier 102 stores indications of itemsfor later access by the user via the store manager 104. Also, the user150 may access information about identified items via the presentationdevice 120 or some other device. In particular, the user 150 may lateraccess information via some other computing device, such as a laptopcomputer, a mobile phone, or a desktop computing system. In someembodiments, identified items are presented by the store manager 104 viaa Website, such that they may be accessed from various types ofcomputing devices or from various locations. In other embodiments, theuser 150 may access items via a special-purpose program or component,such as an “app” executing on a smart phone or other mobile device (e.g.a tablet computer).

Various users can concurrently interact with the shopping facilitator100. For example, two or more people viewing a media content event canindicate interest in purchasing items by using different devices. In oneembodiment, a first user can use the remote control device 122, while asecond user can use some other device, such as a second remote controldevice, a smart phone, laptop computer, or the like, in order totransmit indications of interest to the shopping facilitator 100. Theshopping facilitator 100 can associate indications received fromdistinct devices with corresponding users of those devices, in order toprovide distinct shopping facilities (e.g., stores) for those users.Then, the shopping facilitator 100 can provide distinct shoppingfacilities for the first and second users, each shopping facilitycustomized for a corresponding user based on the indications of interestreceived from that user.

The illustrated media device 110 is a set-top box (“STB”). In otherembodiments, the media device 110 is or includes a television (“TV”), adigital video disc (“DVD”) player, a DVD recorder, a game playingdevice, or a personal computer (“PC”). As noted, the media device 110receives media content events from the program distributor 140 via thecommunications system 130. The communications system 130 may includemany different types of communication media, now known or laterdeveloped. Non-limiting media examples include telephony systems, theInternet, internets, intranets, cable systems, fiber optic systems,microwave systems, asynchronous transfer mode (“ATM”) systems, framerelay systems, digital subscriber line (“DSL”) systems, radio frequency(“RF”) systems, and satellite systems. In some embodiments, the mediadevice 110 includes multiple communication ports, such as a first portfor receiving an RF signal (e.g., from a satellite or terrestrialbroadcast system) from the program distributor 140 and a second port(e.g., Ethernet) for communicating with other systems via the Internetor other networks.

The described techniques are not limited to the particular architectureshown in FIG. 1. For example, all or part of the shopping facilitator100 may reside on a computing system that is remote from the mediadevice 110. In one embodiment, part of the shopping facilitator 100,such as the item identifier 102, resides at the item informationprovider 144 and/or the program distributor 140. In another embodiment,the store manager 104 resides at the merchant 142 or in some otherlocation. In addition, various types of program distributors 140 arecontemplated, including broadcasters of digital and/or analog mediacontent events, such as satellite broadcasters, over-the-air(terrestrial) broadcasters, cable systems, and the like. Also, theprogram distributor 140 may be or include interactive and on-demandsystems, such as Internet video streaming or download services. In yetother embodiments, the media device 110 obtains media content eventslocally, such as from a storage device on the media device, including aDVD, hard disk, or the like. In this manner, the techniques can be usedto provide shopping functionality while viewing a DVD.

FIGS. 2A-2D illustrate example user interface screens provided byexample embodiments. In particular, FIG. 2A shows a scene 200 displayedon a presentation device 120. The scene 200 depicts a man typing on alaptop computer. The scene includes a laptop computer, eye glasses, ashirt, a tie, a headset (earpiece), along with other items. At the timethat scene 200 is shown on the presentation device 120, the user 150indicates that he is interested in purchasing or obtaining informationabout one or more of the items shown in the scene 200. The user 150 maymake such an indication in various ways, such as by pressing a button ona remote control device 122.

When the shopping facilitator 100 receives the indication that the useris interested in an item shown in the scene 200, the shoppingfacilitator 100 may respond in various ways. In one embodiment, theshopping facilitator 100 may silently or transparently (to the user)store the received indication of interest, an identifier of the mediacontent event being presented, and a time at which the indication wasreceived. This information may be used to then, or at a later time,determine which items were shown in the scene 200. In other embodiments,as discussed further below with reference to FIGS. 2B and 2C, theshopping facilitator 100 may provide at least some feedback to the userthat an indication of interest was received.

FIG. 2B illustrates feedback given by one embodiment in response to anindication of item interest received from a user. In particular, FIG. 2Bshows the scene 200 displayed on the presentation device 120, along witha message box 210. The message box 210 displays indications of itemsshown in the scene 200 that are being saved or otherwise stored by theshopping facilitator 100 for later access by the user. The message box210 is displayed in response to an indication of interest received fromthe user 150. In such an embodiment, the shopping facilitator 100 doesnot determine specifically which item is of interest to the user.Rather, the shopping facilitator 100 stores indications of one or moreitems that are shown at about the time that the indication of interestis received from the user 150.

The message box 210 is in some embodiments displayed for a brief time(e.g., less than 5 seconds, less than 10 seconds) in order to providefeedback that items have been selected for later access by the user,without unduly disrupting the viewing experience. Note also that themessage box 210 is in this example may be placed unobtrusively near thebottom of the screen (or some other location that does not obstruct theuser's view), so as to provide minimal disruption of the user's viewingexperience. In other embodiments, iconic or audio feedback may beemployed, such as by playing a beep or briefly displaying an icon toindicate that items have been selected for later access.

FIG. 2C illustrates feedback given by another embodiment in response toan indication of interest received from a user. In particular, FIG. 2Cshows the scene 200 displayed on the presentation device 120, along witha selection box 220. The selection box 220 displays indications of itemsshown in the scene 200 along with checkboxes that may be selected oractivated by the user 150 to further specify items that are of interest.The selection box 220 is displayed in response to an indication ofinterest received from the user 150, and is populated with one or moreitems that are shown at about the time that the indication of interestis received from the user 150. The user 150 can then make appropriateselections in the selection box 220 to specify the items that should besaved for later viewing or purchase.

Note here that the selection box 220 is also placed unobtrusively nearthe bottom of the screen, so as to provide minimal disruption of theviewing experience. Also, in some embodiments, the selection box 220may, after a time period, time out and disappear from view. Variousactions are contemplated at time out, such as automatic selection of allitems, automatic de-selection of all items, or the like. Such actionscan in some embodiments be configured by the user.

FIG. 2D illustrates a shopping facility provided by example embodimentof a shopping facilitator 100. In particular, FIG. 2D shows a screen 230displayed on the presentation device 120. The screen 230 provides ashopping facility that is populated with items selected by the user frommedia content events viewed by the user. The screen 230 includesinformation about recently selected items of interest. In this example,information about three items is displayed. The three items include anABC brand laptop computer, DEF brand eyeglasses, and an XYZ brand smartphone. Information about each item includes a name or description of theitem, a price, along with controls (e.g., links) that can be selected bythe user to buy the item, obtain more information about the item, oraccess information about similar items. For example, if the user isinterested in purchasing the DEF brand eyeglasses, the user can selectthe “Buy” link to access a transaction page or other user interface forinitiating a transaction for the item. As another example, the user canselect the “Similar Items” link in order to obtain information aboutlaptop computers that are similar to the ABC brand laptop computerdisplayed on the screen 230.

FIG. 3 illustrates example data processed by an example embodiment. Inparticular, FIG. 3 shows a table 300 that includes rows 304 a-304 h thatstore item information (e.g., metadata). Each row 304 a-304 h includesinformation about an item that is shown at some time during a mediacontent event. In particular, each row 304 a-304 h includes a programidentifier (“ID”) field 302 a that identifies a media content event, anditem identifier (“ID”) field 302 b, item name field 302 c, a begin timefield 302 d, and an end time field 302 e. For example, row 304 aindicates that the ABC brand laptop computer, having item ID 101 isshown in a media content event having program ID 1233, starting at 14minutes and 15 seconds, and ending at 14 minutes and 35 seconds. Row 304b indicates that the same ABC brand laptop computer (as discussed withreference to row 304 a) is shown again at a later time in program 1233,starting at one hour, 23 minutes, and 2 seconds, and ending at one hour,23 minutes, and 32 seconds. Similarly, rows 304 c and 304 d representinformation about two appearances of a tie having item ID on 122 inprogram 1233. Also, row 304 e indicates that DEF brand eyeglasses areshown in program 1233 14 minutes and 12 seconds, and ending at 14minutes and 50 seconds. Rows 304 f and 304 g store information aboutother items shown in other media content events.

In one embodiment, the shopping facilitator 100 may use the iteminformation shown in table 300 in the following manner to identify itemsof potential interest to a user. The shopping facilitator 100 receivesan indication of interest including an indication of a media contentevent, such as a program identifier, and a time at which the indicationof interest was generated, received, transmitted, or the like. Theshopping facilitator 100 then uses the received program identifier andthe time to identify (e.g., select, find) in table 300 one or more itemsshown by the media content event at about that time (e.g., within 5seconds, within 10 seconds, within 30 seconds, within one minute). Inthe example of FIG. 2A, the shopping facilitator 100 may receive aprogram identifier of 1233 and a time of 14 minutes and 30 seconds.Using this information together with that in table 300, the shoppingfacilitator 100 determines that the ABC Brand Laptop Computer (from row304 a), the Tie (from row 304 c), and the DEF Brand Eyeglasses (from row304 e) are shown by the media content event at the received time.

The time received by the shopping facilitator 100 may be somewhat laterthan the actual time at which an item of interest appeared in a givenmedia content event, due to a delay between when the item appeared andwhen the user indicated interest by pressing a button or other inputdevice. To account for such a delay, the shopping facilitator 100 maysearch for items in table 300 that appear within a time window,interval, or duration around (e.g., before, after, before and after) thereceived time. Thus, if the received time was 14 minutes and 30 seconds,the shopping facilitator, may select all items from the table that areshown between 14 minutes and 10 seconds and 14 minutes and 30 seconds,if a 20 second preceding time window is used. Time windows of othersizes may be used to identify items occurring at about a time. Also, atime window may be dynamically adjusted, such as when no items arelocated at a given time. In such cases, the shopping facilitator 100 mayuse progressively larger time windows until at least one item is itfound. Time windows may be adjusted for other reasons as well, such asin response to a user input requesting additional items shown at about aspecified time. In addition, although program time (e.g., the elapsedtime since the beginning of a media content event) is used in the aboveexamples, other embodiments may use absolute time (e.g., wall clock).

In some embodiments, the shopping facilitator 100 identifies items withrespect to particular frames, images, or scenes included in a mediacontent event. For example, where a media content event is representedas a series of images or frames (e.g., I-frames, P-frames, B-frames) theshopping facilitator 100 may retrieve one or more images or frames thatprecede the reception of the indication of interest from the user. Theseimages may be associated with metadata such as is shown in table 300,such that the shopping facilitator 100 can determine items appearingtherein. In other embodiments, object recognition techniques may be usedto process such images to determine items appearing therein.

The shopping facilitator 100 may obtain the item information shown intable 300 from various sources. In one embodiment, the item informationis provided along with a media content event stream or other signalreceived by the media device 110. In another embodiment, the mediadevice 110 obtains the item information by requesting it from theprogram distributor 140 or some other source, such as the iteminformation provider 144.

The shopping facilitator 100 may use more or less information,information of different types, and/or information organized in otherways to identify items shown in media content events. In one embodiment,the shopping facilitator 100 stores an inverted index or other mappingthat can be used to efficiently determine or identify one or more itemsshown in a media content event at a given time. Also, the table 300 mayinclude other types of information stored in other fields and/orlocations. As one example, items may be associated with one or morepreferred merchants that deal in the item (or type of item) represented.

In other embodiments, the shopping facilitator 100 may use informationabout the user to determine or identify items of interest and/or toperform other functions. In one embodiment, the shopping facilitator 100may filter, narrow, or otherwise select items of interest based at leastin part upon demographic information, such as age, gender, location,occupation, or the like. As one example, the shopping facilitator 100may utilize the zip code of the viewer to provide information aboutlocal merchants that provide items of interest. As another example,given a scene that shows a sports car driven by a woman wearing a dress,the shopping facilitator 100 may utilize the fact that the user is maleto determine that the user is most likely interested in the sports carand not the dress.

In some embodiments, the shopping facilitator 100 may interact withsocial networking services or systems to share information about itemsof interest with other people who are in a user's social network. Forexample, the shopping facilitator 100 may transmit indications of itemsof interest to a social networking service, such that those items appearin conjunction with an account or other personal space shared by theuser via the social networking service. In this manner, a user caneasily share his or her likes (or dislikes) with his or her friends orother connections.

FIG. 4 is a flow diagram of a shopping facilitator process provided byan example embodiment. The illustrated process may be provided by, forexample, one or more components of the shopping facilitator 100. Theillustrated process facilitates shopping for items shown in mediacontent events by identifying and storing indications of such items asthey are selected by a viewer.

The process begins at block 402, where it presents a media content eventthat shows multiple items. Presenting a media content event may includedisplaying a media content event on a presentation device such as atelevision or computer display. In at least some embodiments, the mediacontent event is presented without indications that any of the multipleitems are available for purchase.

At block 404, the process receives an indication that a viewer of themedia content event is interested in purchasing items shown by the mediacontent event. In some embodiments, receiving the indication includesreceiving a media content event identifier and an indication of a timethat occurs during presentation of the media content event. Suchinformation may be stored and/or utilized later to determine or identifyitems that are of interest to the viewer, as described further below.

At block 406, the process identifies one or more of the multiple itemsshown by the media content event, where the one or more items includethe item that the viewer is interested in purchasing. In someembodiments, identifying the one or more items may include referencingor otherwise accessing metadata about the media content event. Forexample, the metadata may associate items that are shown in the mediacontent event with corresponding times at which they are shown, suchthat the process can determine items that are shown at about the timethat the indication of interest was received from the viewer.

In other embodiments, identifying the one or more items may includeidentifying a plurality of items shown at about the time that theindication of interest was received from the viewer, and presenting tothe viewer a selection menu that includes the plurality of items. Theviewer may then use the selection menu to further specify which itemsare of interest to the viewer. In still other embodiments identifyingone or more items may include automatically performing image recognitionto identify the items in an image or a scene from the media contentevent. Such image recognition may be performed in an on-line or off-linemanner, possibly depending on the computational characteristics of thecomputing system (e.g., media device) that is executing the process.

At block 408, the process stores indications of the identified items.The process may then perform further functions with the storedindications. For example, the process may display or otherwise provide ashopping facility that includes information about the identified items.The shopping facility may be accessed in various ways by the viewer orsome other user. For example, the shopping facility may be presented aspart of an electronic program guide displayed by a media device on apresentation device. In other embodiments, the shopping facility may bepresented during a commercial break or as part of a screensaverpresented by a media device. In yet other embodiments, the shoppingfacility may be accessed as a Webpage from a computing device such as asmart phone or other mobile device.

FIG. 5 is a block diagram of a computing system for practicing exampleembodiments of a shopping facilitator. FIG. 5 shows a computing system500 that may be utilized to implement a shopping facilitator 100. In oneembodiment, the computing system 500 is part of a set-top box or othermedia device 110 configured to receive and display media content eventson a presentation device 120. In other embodiments, the computing system500 is part of a presentation device 120, such as a television.

In the embodiment shown, the computing system 500 comprises a computermemory (“memory”) 501, a display 502, one or more Central ProcessingUnits (“CPU”) 503, Input/Output (“I/O”) devices 504 (e.g., audioprocessor, video processor, keyboard, mouse, CRT or LCD display cards ordrivers, and the like), other computer-readable media 505, and networkconnections 506. The shopping facilitator 100 is shown residing inmemory 501. In other embodiments, some portion of the contents, some of,or all of the components of the shopping facilitator 100 may be storedon and/or transmitted over the other computer-readable media 505. Thecomponents of the shopping facilitator 100 preferably execute on one ormore CPUs 503 and facilitate shopping for items appearing in mediacontent events, as described herein. Other code or programs 530 (e.g.,an audio/video processing module, a program guide manager module, a Webbrowser or server, and the like) and potentially other datarepositories, such as data repository 520, also reside in the memory501, and preferably execute on one or more CPUs 503. Of note, one ormore of the components in FIG. 5 may not be present in any specificimplementation. For example, some embodiments may not provide othercomputer-readable media 505 or a display 502.

The memory 501 also includes a user interface manager 515 and a shoppingapplication program interface (“API”) 516. The user interface (“UI”)manager 515 provides a view and a controller that facilitate userinteraction with the shopping facilitator 100 and its variouscomponents. For example, the user interface manager 515 providesinteractive graphical user interface elements such as those discussedwith respect to FIGS. 2A-2D. As discussed, such user interfaces allowthe user to specify items of interest, obtain information about items,and/or initiate transactions for items.

The API 516 provides programmatic access to one or more functions of theshopping facilitator 100. For example, the API 516 may provide aprogrammatic interface to one or more functions of the shoppingfacilitator 100 that may be invoked by one of the other programs 530 orsome other module. In this manner, the API 516 facilitates thedevelopment of third-party software, such as user interfaces, plug-ins,news feeds, adapters (e.g., for integrating functions of the shoppingfacilitator 100 into Web applications), and the like. In addition, theAPI 516 may be in at least some embodiments invoked or otherwiseaccessed via remote entities, such as code executing on a remote clientdevice, to access various functions of the shopping facilitator 100. Forexample, an application on a mobile device may obtain indications ofitems of interest via the API 516. As another example, one of themerchants 142 may push information about items of interest to theshopping facilitator 100 via the API 516. The API 516 may also beconfigured to provide code modules that can be integrated intothird-party applications and that are configured to interact with theaction shopping facilitator 100 to make at least some of the describedfunctionality available within the context of other applications.

In an example embodiment, components/modules of the shopping facilitator100 are implemented using standard programming techniques. For example,the shopping facilitator 100 may be implemented as a “native” executablerunning on the CPU 503, along with one or more static or dynamiclibraries. In other embodiments, the shopping facilitator 100 may beimplemented as instructions processed by a virtual machine that executesas one of the other programs 530. In general, a range of programminglanguages known in the art may be employed for implementing such exampleembodiments.

In addition, the embodiments described above may also be structured invarious ways, including but not limited to, multiprogramming,multithreading, client-server, or peer-to-peer, running on one or morecomputer systems each having one or more CPUs. Some embodiments mayexecute concurrently and asynchronously, and communicate using messagepassing, pipes, signals, or other communication techniques. Also, otherfunctions could be implemented and/or performed by eachcomponent/module, and in different orders, and by differentcomponents/modules, yet still achieve the described techniques.

Furthermore, in some embodiments, some or all of the components of theshopping facilitator 100 may be implemented or provided in othermanners, such as at least partially in firmware and/or hardware,including, but not limited to one or more application-specificintegrated circuits (“ASICs”), standard integrated circuits, controllers(e.g., by executing appropriate instructions, and includingmicrocontrollers and/or embedded controllers), field-programmable gatearrays (“FPGAs”), complex programmable logic devices (“CPLDs”), and thelike. Some or all of the system components and/or data structures mayalso be non-transitorily stored as contents (e.g., as executable orother machine-readable software instructions or structured data) on acomputer-readable medium (e.g., as a hard disk; a memory; a computernetwork or cellular wireless network or other data transmission medium;or a portable media article to be read by an appropriate drive or via anappropriate connection, such as a DVD or flash memory device) so as toenable or configure the computer-readable medium and/or one or moreassociated computing systems or devices to execute or otherwise use orprovide the contents to perform at least some of the describedtechniques. Some or all of the system components and data structures mayalso be stored as data signals (e.g., by being encoded as part of acarrier wave or included as part of an analog or digital propagatedsignal) on a variety of computer-readable transmission mediums, whichare then transmitted, including across wireless-based andwired/cable-based mediums, and may take a variety of forms (e.g., aspart of a single or multiplexed analog signal, or as multiple discretedigital packets or frames). Such computer program products may also takeother forms in other embodiments. Accordingly, embodiments of thisdisclosure may be practiced with other computer system configurations.

It should be emphasized that the above-described embodiments of theshopping facilitator 100 are merely possible examples of implementationsof the described techniques. Many variations and modifications may bemade to the above-described embodiments. All such modifications andvariations are intended to be included herein within the scope of thisdisclosure and protected by the following claims.

1. A media device that presents a media content event that showsmultiple items without indications that any of the multiple items areavailable for purchase, the media device comprising: a processor; and amemory that stores an item information mapping that associates each ofthe multiple items item with a time at which the item is shown in themedia content event; and a memory that stores instructions that areconfigured, when executed by the processor, to: during presentation ofthe media content event, receive an indication that a viewer of themedia content event is interested in purchasing an item shown by themedia content event; store a time corresponding to received indication;identify the item that the viewer is interested in purchasing, bysearching the item information mapping with a dynamically adjusted timewindow that encompasses both the time corresponding to the receivedindication and the time associated with the item in the item informationmapping, wherein the dynamically adjusted time window is madeprogressively larger until the item is found; and store an indicationitem that the viewer is interested in purchasing by storing anindication of the item found in the item information mapping.
 2. Themedia device of claim 1, wherein the dynamically adjusted time intervalhas a begin time and an end time, wherein the time corresponding to thereceived indication is between the begin time and the end time, andwherein the time associated with the item in the item informationmapping is between the begin time and the end time.
 3. The media deviceof claim 1, wherein the instructions are further configured to:progressively increasing the size of the time window until the item isfound in the item information mapping.